package m2acsis.algebre.impl;

import m2acsis.algebre.ElemGroupe;


public class EntierRelatif implements ElemGroupe, Comparable<EntierRelatif>{

	private int n;
	
	public EntierRelatif(int n) {
		this.n = n;
	}
	
	@Override
	public ElemGroupe neutre() {
		return new EntierRelatif(0);
	}

	@Override
	public ElemGroupe oppose() {
		return new EntierRelatif(-1 * n);
	}

	@Override
	public ElemGroupe somme(ElemGroupe e) {
		
		if(e instanceof EntierRelatif)
			return new EntierRelatif(((EntierRelatif) e).n + n);
		
		return null;
	}
	
	public int getN() {
		return n;
	}

	public int getValeur() {
		return n;
	}
	
	@Override
	public String toString() {
		return String.valueOf(n);
	}

	@Override
	public int compareTo(EntierRelatif o) {
		
		if(n == o.n)
			return 0;
		else
			if(n < o.n)
				return -1;
			else
				return 1;
	}
	
	@Override
	public boolean equals(Object obj) {
		if(this == obj){
			return true;
		}
		
		if(obj instanceof EntierRelatif){
			EntierRelatif anotherEntierRelatif = (EntierRelatif) obj;
			return anotherEntierRelatif.n == n;
		}
		
		return false;
	}


}
